1. Field of the Invention
The present invention relates to a computer equipped with a virtual storage system and, more particularly, to a virtual storage control system and method that prevent malfunctions due to the occurrence of page faults.
2. Description of the Related Art
Among computer processes, there are some which must be executed indivisibly (continuously, without being interrupted). Such processes are referred to as indivisible operations.
Indivisible operations will be described with reference to FIG. 12, which, as an example, shows the execution of a program for storing the logical product of the contents of memories M1 and M2 in a register R3.
A program 13 is executed to store the contents of the memory M1 in a register R1 and the contents of the memory M2 in a register R2. Subsequently, the program 13 obtains and stores the logical product of the contents of the registers R1 and R2 in the register R3.
Assume here that an external interruption (an asynchronous interruption) occurs immediately after the storage of the contents of the memory M1 in the register R1, and an interruption process 15 alters the contents of the memories M1 and M2. As a result, the value of the data placed in the register R2 differs from the expected value, causing an error in the result of the arithmetic operation. For this reason, a series of operations for storing the contents for the memories M1 and M2 in the registers R1 and R2, respectively, and storing the logical product of their contents in the register R3 must be executed continuously, without any interruption operation.
The above indivisible operations may be accomplished by adopting the approach of executing a disable interrupt instruction prior to the execution of the indivisible operations and canceling or releasing the disable instruction after their execution. However, even when such an approach is adopted, there is still a possibility that an exception which can not be disabled will occur, and the indivisible operations cannot be executed continuously. For example, in a demand paging virtual storage computer system, page fault exception cannot be disabled. For this reason, there is a possibility that in spite of execution of a disable interrupt instruction, a page fault exception will occur during reading from the memory M2, the processing will transfer from the page fault exception to another program with higher priority, and the contents of the memory M2 will be manipulated while the other program is being executed.
To circumvent such a problem, indivisible operations have conventionally been implemented by providing pseudo-memory-interlock with software, by a system call, or by executing them as a single instruction with firmware or hardware.
However, the execution of indivisible operations by pseudo-memory-interlock with software entails overhead. The execution of indivisible operations by system call entails overhead (supervisor recall interruption). If the indivisible operations are relatively simple, the overheads will decrease performance.
The indivisible operations realized by hardware or firmware has no flexibility in combination of instructions. In other words, a specific instruction must be used for a specific purpose. Further, use of specific instructions for specific purposes increases the amount of hardware or firmware design, and extends instruction execution time, thus decreasing system performance. Moreover, increasing the amount of hardware or firmware design reduces system reliability. Such factors create significant problems as regards the designing of a RISC (Reduced Instruction Set Computer) architecture computer, in particular.